package com.yzy.soft.config;

//import org.springframework.beans.factory.annotation.Qualifier;


/**
 * @author kingboy
 * @date 2017/6/18 下午11:13
 * @desc 数据源配置
 */
//@Configuration
//@EnableTransactionManagement(order=2)//开启事物管理
//@EnableJpaRepositories(//自定义数据管理的配置
//        //指定EntityManager的创建工厂Bean
//        entityManagerFactoryRef = "activitiEntityManagerFactory",
//        //指定事物管理的Bean
//        transactionManagerRef = "activitiTransactionManager",
//        //指定管理的实体位置
//        basePackages = {"com.sinosoft.liscw.system.domain.activiti"})
public class ActivitiJPAConfig {

    /*
     * 配置数据源
     */
//    @Bean("activitiDataSource")
//    @ConfigurationProperties(prefix = "datasourc.activiti")
//    public  DataSource activitiDataSource() {
//         return DataSourceBuilder.create().build();
//    }


    //注入数据源配置信息
//    @Autowired
//    ActivitiDataSourceProperties config;

    //设置数据源的属性的方法
//    private void setDruidProperties(DruidDataSource dataSource) {
//        dataSource.setUrl(config.getUrl());
//        dataSource.setUsername(config.getUsername());
//        dataSource.setPassword(config.getPassword());
//        dataSource.setDriverClassName(config.getDriverClassName());
//        dataSource.setMaxActive(config.getMaxActive());
//        dataSource.setInitialSize(config.getInitialSize());
//        dataSource.setMinIdle(config.getMinIdle());
//        dataSource.setMaxWait(config.getMaxWait());
//        dataSource.setMaxPoolPreparedStatementPerConnectionSize(config.getMaxPoolPreparedStatementPerConnectionSize());
//        dataSource.setTimeBetweenEvictionRunsMillis(config.getTimeBetweenEvictionRunsMillis());
//        dataSource.setMinEvictableIdleTimeMillis(config.getMinEvictableIdleTimeMillis());
//        dataSource.setPoolPreparedStatements(config.getPoolPreparedStatements());
//    }

    /*
     * 配置实体管理工厂Bean
     */
//    @Bean
//    public LocalContainerEntityManagerFactoryBean activitiEntityManagerFactory(org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder builder) {
//        return builder
//                .dataSource(activitiDataSource())
//                .packages("com.sinosoft.liscw.system.domain.activiti")//设置实体类所在位置
//                .persistenceUnit("activiti")
//                .properties(getProperties(activitiDataSource()))//设置hibernate通用配置
//                .build();
//    }

//    //注入spring自带的jpa属性类
//    @Autowired
//    private JpaProperties jpaProperties;

    /*
     *拿到hibernate的通用配置
     */
//    private Map<String, String> getProperties(DataSource dataSource) {
//        return jpaProperties.getHibernateProperties(dataSource);
//    }

    /*
     *配置事物管理的Bean
     */
//    @Bean
//    public PlatformTransactionManager activitiTransactionManager(org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder builder) {
//        return new JpaTransactionManager(activitiEntityManagerFactory(builder).getObject());
//    }


}
